Content management in peer-to-peer systems

ABSTRACT

Disclosed are methods, systems, apparatus, devices, products, and other implementations, including a method that includes monitoring a plurality of messages from a plurality of mobile devices, each of at least some of the plurality of messages including at least one identifier of at least one content data record, from a plurality of content data records, stored at least on a sending device sending the respective message, and data representative of number of times the at least one content data record was used on the respective sending device. The method also includes determining popularity metrics for one or more content data records from the plurality of content data records based on the data included in each of the at least some of the plurality of messages representative of the number of times the respective at least one content data record was used on the respective sending device.

BACKGROUND

In a peer-to-peer (P2P) system that is used to share and distributecontent, there is generally no central server hosting the content ordetermining content related use (e.g., view) or popularity metrics thatthe devices of the system have access to. In such a system, it may bedifficult to assess and identify popular content that is availablewithin the system.

SUMMARY

Disclosed herein are methods, systems, apparatus, devices, products, andother implementations, including a method that includes monitoring aplurality of messages from a plurality of mobile devices, each of atleast some of the plurality of messages including at least oneidentifier of at least one content data record, from a plurality ofcontent data records, stored at least on a sending device sending therespective message, and data representative of number of times the atleast one content data record was used on the respective sending device.The method also includes determining popularity metrics for one or morecontent data records from the plurality of content data records based onthe data included in each of the at least some of the plurality ofmessages representative of the number of times the respective at leastone content data record was used on the respective sending device.

Embodiments of the method may include at least some of the featuresdescribed in the present disclosure, including one or more of thefollowing features.

The at least one identifier included in the each of the at least some ofthe plurality of messages may include data identifying the originator ofthe associated at least one content data record.

Determining the popularity metrics for the one or more content datarecords from the plurality of content data records may includedetermining the sum of the times each of the one or more content datarecords was used on each sending device on which the respective each ofthe one or more content data records is stored, and determining a ratioof the sum of the times the each of the one or more of content datarecords was used on the each sending device on which the respective eachof the one or more content data records is stored, and number of sendingdevices on which the respective each of the one or more content datarecords is stored.

The method may further include downloading one of the plurality ofcontent data records associated with a popularity metric exceeding apre-determined popularity threshold.

Downloading the one of the plurality of content data records may includein, response to a determination that number of locally stored contentdata records exceeds a pre-determined capacity threshold, identifying alocally stored content data record associated with a correspondingpopularity metric representative of the identified locally storedcontent data record being the least popular from the locally storedcontent data records, and replacing the identified locally storedcontent data with the one of the plurality of the content data recordswhen the identified locally stored content data record is determined tobe less popular than the one of the plurality of content data records.

The method may further include adjusting at each sending device thenumber of times each of the data content records stored on therespective each sending device was used.

Adjusting at the each sending device the number of times the each of thedata content records stored on the respective each sending device wasused may include incrementing the number of times a particular datacontent record, stored on a particular sending device, was viewed when,for example, at least 50% of the particular data content record waspresented on the particular sending device, and/or the particular datacontent record was presented on the particular sending device for aperiod of time exceeding a pre-determined period.

Adjusting at the each sending device the number of times the each of thedata content records stored on the respective each sending device wasused may include reducing the number of times a particular data contentrecord stored on a particular sending device when the particular datacontent record was last presented on the particular device more than apre-determined period.

Each of the at least some of the plurality of messages further mayinclude at least one flag associated with the respective at least onecontent data record to indicate at least one attribute associated withthe respective at least one content data.

The at least one flag to indicate the at least one attribute associatedwith the respective at least one content data may include information toindicate of whether a user operating the respective sending device likedthe respective at least one content data record.

In some variations, a wireless communication device is disclosed. Thewireless communication device includes one or more processors, atransceiver to receive wireless messages, and storage media includingcomputer instructions. The computer instructions, when executed on theone or more processors, cause operations including monitoring aplurality of messages from a plurality of mobile devices, each of atleast some of the plurality of messages including at least oneidentifier of at least one content data record, from a plurality ofcontent data records, stored at least on a sending device sending therespective message, and data representative of number of times the atleast one content data record was used on the respective sending device.The computer instructions further cause operations that includedetermining popularity metrics for one or more content data records fromthe plurality of content data records based on the data included in eachof the at least some of the plurality of messages representative of thenumber of times the respective at least one content data record was usedon the respective sending device.

Embodiments of the device may include at least some of the featuresdescribed in the present disclosure, including at least some of thefeatures described above in relation to the method.

In some variations, an apparatus is disclosed. The apparatus includesmeans for monitoring a plurality of messages from a plurality of mobiledevices, each of at least some of the plurality of messages including atleast one identifier of at least one content data record, from aplurality of content data records, stored at least on a sending devicesending the respective message, and data representative of number oftimes the at least one content data record was used on the respectivesending device. The apparatus further includes means for determiningpopularity metrics for one or more content data records from theplurality of content data records based on the data included in each ofthe at least some of the plurality of messages representative of thenumber of times the respective at least one content data record was usedon the respective sending device.

Embodiments of the apparatus may include at least some of the featuresdescribed in the present disclosure, including at least some of thefeatures described above in relation to the method and the device, aswell as one or more of the following features.

The means for determining the popularity metrics for the one or morecontent data records from the plurality of content data records mayinclude means for determining the sum of the times each of the one ormore content data records was used on each sending device on which therespective each of the one or more content data records is stored, andmeans for determining a ratio of the sum of the times the each of theone or more of content data records was used on the each sending deviceon which the respective each of the one or more content data records isstored, and number of sending devices on which the respective each ofthe one or more content data records is stored.

The apparatus may further include means for downloading one of theplurality of content data records associated with a popularity metricexceeding a pre-determined popularity threshold.

The means for downloading the one of the plurality of content datarecords may include means for performing operations, in response to adetermination that number of locally stored content data records exceedsa pre-determined capacity threshold, including identifying a locallystored content data record associated with a corresponding popularitymetric representative of the identified locally stored content datarecord being the least popular from the locally stored content datarecords, and replacing the identified locally stored content data withthe one of the plurality of the content data records when the identifiedlocally stored content data record is determined to be less popular thanthe one of the plurality of content data records.

The apparatus may further include means for adjusting at each sendingdevice the number of times each of the data content records stored onthe respective each sending device was used.

The means for adjusting at the each sending device the number of timesthe each of the data content records stored on the respective eachsending device was used may include means for incrementing the number oftimes a particular data content record, stored on a particular sendingdevice, was viewed when, for example, at least 50% of the particulardata content record was presented on the particular sending device,and/or the particular data content record was presented on theparticular sending device for a period of time exceeding apre-determined period.

The means for adjusting at the each sending device the number of timesthe each of the data content records stored on the respective eachsending device was used may include means for reducing the number oftimes a particular data content record stored on a particular sendingdevice when the particular data content record was last presented on theparticular device more than a pre-determined period.

In some variations, a non-transitory processor readable media programmedwith a set of instructions executable on a processor that, whenexecuted, cause operations including monitoring a plurality of messagesfrom a plurality of mobile devices, each of at least some of theplurality of messages including at least one identifier of at least onecontent data record, from a plurality of content data records, stored atleast on a sending device sending the respective message, and datarepresentative of number of times the at least one content data recordwas used on the respective sending device. The instructions causefurther operations including determining popularity metrics for one ormore content data records from the plurality of content data recordsbased on the data included in each of the at least some of the pluralityof messages representative of the number of times the respective atleast one content data record was used on the respective sending device.

Embodiments of the processor readable media may include at least some ofthe features described in the present disclosure, including at leastsome of the features described above in relation to the method, thedevice, and the apparatus.

Unless defined otherwise, all technical and scientific terms used hereinhave the same meaning as commonly or conventionally understood. As usedherein, the articles “a” and “an” refer to one or to more than one(i.e., to at least one) of the grammatical object of the article. By wayof example, “an element” means one element or more than one element.“About” and/or “approximately” as used herein when referring to ameasurable value such as an amount, a temporal duration, and the like,is meant to encompass variations of ±20% or ±10%, ±5%, or +0.1% from thespecified value, as such variations are appropriate to in the context ofthe systems, devices, circuits, methods, and other implementationsdescribed herein. “Substantially” as used herein when referring to ameasurable value such as an amount, a temporal duration, a physicalattribute (such as frequency), and the like, is also meant to encompassvariations of ±20% or ±10%, ±5%, or +0.1% from the specified value, assuch variations are appropriate to in the context of the systems,devices, circuits, methods, and other implementations described herein.

As used herein, including in the claims, “or” and “and” as used in alist of items prefaced by “at least one of” or “one or more of”indicates that any combination of the listed items may be used. Forexample, a list of “at least one of A, B, or C” includes any of thecombinations A or B or C or AB or AC or BC and/or ABC (i.e., A and B andC). Furthermore, to the extent more than one occurrence or use of theitems A, B, or C is possible, multiple uses of A, B, and/or C may formpart of the contemplated combinations. For example, a list of “at leastone of A, B, or C” may also include AA, AAB, AAA, BB, etc.

As used herein, including in the claims, unless otherwise stated, astatement that a function, operation, or feature, is “based on” an itemand/or condition means that the function, operation, function is basedon the stated item and/or condition and may be based on one or moreitems and/or conditions in addition to the stated item and/or condition.

Unless defined otherwise, all technical and scientific terms used hereinhave the same meaning as commonly understood by one of ordinary skill inthe art to which this disclosure pertains.

Details of one or more implementations are set forth in the accompanyingdrawings and in the description below. Further features, aspects, andadvantages will become apparent from the description, the drawings, andthe claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of an operating environment that includesa peer-to-peer (“P2P”) network or system.

FIG. 2 is a block diagram of a mobile device that may be configured tooperate in a P2P system.

FIG. 3 is a flowchart of an example procedure to monitor contentavailable in a P2P system and determine popularity metrics therefor.

FIG. 4 is a diagram of an example message to advertise content with atleast some information fields that may be included in the message.

FIG. 5 is a flowchart of an example procedure to manage content datarecords stored on a device configured for communication in a P2P system.

FIG. 6 is a schematic diagram of a generic computing system.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

The description set forth below in connection with the appended drawingsis intended as a description of various configurations and is notintended to represent the only configurations in which the conceptsdescribed herein may be practiced. The description includes details forthe purpose of providing an understanding of various concepts. However,these concepts may be practiced without these specific details.

Disclosed herein are methods, systems, devices, apparatus, products, andother implementations, including a method of that includes monitoring aplurality of messages/communications from a plurality of mobile devices,with each of at least some of the plurality of messages including atleast one identifier of at least one content data record, from aplurality of content data records, stored at least on a sending devicesending the respective messages, and data representative of number oftimes the at least one content data record was used on the respectivesending device. The method also includes determining popularity metrics(e.g., a popularity index) for one or more content data records from theplurality of content data records based on the data included in each ofthe at least some of the plurality of messages representative of thenumber of times the respective at least one content data record was usedon the respective sending device. The plurality of mobile devices mayconstitute a peer-to-peer system, such as a “Borrego” P2P system, thatuses broadcast beacon advertisements, communicated by the devices of thesystem, to advertise content available for download from the variousdevices in the system. Devices deployed in the P2P system thus monitormessages/beacon advertisements from the various sending devices forcontent that is stored on those sending devices, and depending upontheir need, establish a connection with one or more of the devices todownload content.

Thus, with reference to FIG. 1, a schematic diagram of an operatingenvironment 100 that includes a peer-to-peer system 108 (also referredto as a “P2P” system or network) is shown. In a P2P system each device,such as any of the devices 110 a-k of the network, can establishcommunication links with one, some, or all of the other devices in thesystem, and is configured to serve as a client or server for any ofthose other devices, allowing those other devices access to itsresources (content, applications executing on the device, hardwareoperating on the device, etc.) A P2P is thus configured to enablecommunication, resource sharing and resource management withoutrequiring a central server. As will be described in greater detailsbelow, at least one of the devices of the example P2P system 108 isconfigured to receive content from at least one other of the devices 110a-k, including to monitor a plurality of messages from a plurality ofdevices, with each of at least some of the plurality of messagesincluding at least one identifier of at least one content data recordstored at least on a sending device sending the respective communicationand data representative of number of times the at least one content datarecord was used on the respective sending device. Such a device is alsoconfigured to determine popularity metrics for content data recordsbased on the data included the at least some of the plurality ofmessages that is representative of the number of times the respective atleast one content data record was used on the respective sending device.Each of the devices 110 a-k may be configured to communicate with one,some, or all of the mobile devices constituting the P2P system throughone or more communications technologies/protocols. For example, aparticular one of the devices 110 a-k may transmit or broadcastadvertisements/messages (or control messages) that include informationabout content available on that particular device via such communicationtechnologies as Bluetooth Low Energy (BLE), WiFi Direct, etc., andtransmit content, to another P2P device (which may have requestedcontent or access to resources on the particular transmitting device)using larger capacity communications links (e.g., via WiFi links, suchas WiFi Direct links). Other types of communicationprotocols/technologies to communicate advertising messages and/or forlarge scale data transfers within a P2P system may also be used.

As further shown in FIG. 1, one or more of the devices 110 a-k in theP2P system 108 may be configured to operate and interact with multipletypes of other communication systems/devices, including local areanetwork devices (or nodes), such as WLAN for indoor communication,femtocells, Bluetooth-based transceivers, and other types of indoorcommunication network nodes, wide area wireless network nodes, satellitecommunication systems, etc., and as such the one or more of the devices110 a-k may include one or more interfaces and/or transceivers tocommunicate with the various types of communications systems. As usedherein, communication systems/devices with which the one or more of theP2P devices of the system 108 may communicate with are also referred toas access points (AP's).

For example, the operating environment 100 (that includes the P2P system108) may include a Local Area Network Wireless Access Points (LAN-WAP)106 that may be used for wireless voice and/or data communication withone or more of the P2P devices 110 a-k. In some embodiments, the LAN-WAP106 may also be utilized, in conjunction with one or more other accesspoints (which may be based on similar communication technology to thatimplemented at the access point 106) as an independent source ofposition data, e.g., through implementation of multilateration-basedprocedures based, for example, on time of arrival techniques. TheLAN-WAP 106 can be part of a Wireless Local Area Network (WLAN), whichmay operate in buildings and perform communications over smallergeographic regions than a WWAN. Additionally in some embodiments, theLAN-WAP 106 could also be pico or femto cells. In some embodiments, theLAN-WAPs 106 may be part of, for example, WiFi networks (802.11x),cellular piconets and/or femtocells, Bluetooth Networks, etc. TheLAN-WAPs 106 can also include a Qualcomm indoor positioning system(QUIPS™). A QUIPS implementation may, in some embodiments, be configuredto obtain data particular floor or for some other region where themobile device is located. Although one (1) LAN-WAP access point isdepicted in FIG. 1, any number of such LAN-WAP's may be used, and, insome embodiments, the operating environment 100 may include no LAN-WAPsaccess points at all. Furthermore, the LAN-WAP 106 depicted in FIG. 1may be a moveable node, or may be otherwise capable of being relocated.

As further shown in FIG. 1, the operating environment 100 may alsoinclude, in some embodiments, at least one Wide Area Network WirelessAccess Point (WAN-WAP) 104, which may be used for wireless voice and/ordata communication, and may also serve as another source of independentinformation through which one or more of the devices 110 a-k in the P2Psystem 108 may determine its position/location. The WAN-WAP 104 may bepart of wireless wide area network (WWAN), which may include cellularbase stations, and/or other wide area wireless systems, such as, forexample, WiMAX (e.g., 802.16). A WWAN may include other known networkcomponents which are not shown in FIG. 1. Typically, a WAN-WAP, such asthe WAN-WAP 104, may operate from fixed positions, and provide networkcoverage over large metropolitan and/or regional areas. Although heretoo only one (1) WAN-WAP is illustrated in FIG. 1, any number of suchWAN-WAPs may be used. In some embodiments, the operating environment 100may include no WAN-WAPs at all. Additionally, the WAN-WAP 104 depictedin FIG. 1 may be a moveable node, or may otherwise capable of beingrelocated.

Communication to and from one or more of the mobile devices 110 a-k ofthe P2P system 108 (to exchange data with one or more access points,enable position determination of devices of the P2P system 108, etc.)may thus also be implemented, in some embodiments, using variouswireless communication networks such as a wide area wireless network(WWAN), a wireless local area network (WLAN), a wireless personal areanetwork (WPAN), and so on. The term “network” and “system” may be usedinterchangeably. A WWAN may be a Code Division Multiple Access (CDMA)network, a Time Division Multiple Access (TDMA) network, a FrequencyDivision Multiple Access (FDMA) network, an Orthogonal FrequencyDivision Multiple Access (OFDMA) network, a Single-Carrier FrequencyDivision Multiple Access (SC-FDMA) network, a WiMax (IEEE 802.16), andso on. A CDMA network may implement one or more radio accesstechnologies (RATs) such as cdma2000, Wideband-CDMA (W-CDMA), and so on.Cdma2000 includes IS-95, IS-2000, and/or IS-856 standards. A TDMAnetwork may implement Global System for Mobile Communications (GSM),Digital Advanced Mobile Phone System (D-AMPS), or some other RAT. GSMand W-CDMA are described in documents from a consortium named “3rdGeneration Partnership Project” (3GPP). Cdma2000 is described indocuments from a consortium named “3rd Generation Partnership Project 2”(3GPP2). 3GPP and 3GPP2 documents are publicly available. A WLAN mayalso be implemented, at least in part, using an IEEE 802.11x network,and a WPAN may be a Bluetooth network, an IEEE 802.15x, or some othertype of network. The techniques described herein may also be used forany combination of WWAN, WLAN and/or WPAN.

In some embodiments, and as further depicted in FIG. 1, one or more ofthe devices 110 a-k of the P2P system 108 may also be configured to atleast receive information from a Satellite Positioning System (SPS) 102,which may be used as an independent source of position information forthe one or more of the devices 110 a-k of the system 108. Although onlyone (1) satellite 102 is illustrated in FIG. 1, any number of suchsatellites may be used. Devices configured to receive satellitecommunications may include one or more dedicated SPS receiversspecifically designed to receive signals for deriving geo-locationinformation from the SPS satellites. Thus, in some embodiments, the oneor more of the P2P devices 110 a-k may communicate with any one or acombination of the SPS satellite 102, the WAN-WAP 104, and/or theLAN-WAP 106. In some embodiments, each of the aforementioned systems canprovide an independent information estimate of the position for the oneor more of the devices 110 a-k using different techniques. For example,when deriving position using the access points 104 and/or 106, or usingthe SPS 102, the one or more devices of the P2P system 108 may utilizetime of arrival techniques (optionally with the assistance of apositioning server, not shown in the figure). In some embodiments, theone or more of the devices 110 a-k may combine the solutions derivedfrom each of the different types of access points to improve theaccuracy of the position data.

In embodiments in which the one or more of the mobile devices 110 a-kcan receive satellite signals, the mobile device may utilize a receiver(e.g., a GNSS receiver) implemented for use with the SPS to extractposition data from a plurality of signals transmitted by SPS satellites(such as the satellite 102 depicted in FIG. 1). Transmitted satellitesignals may include, for example, signals marked with a repeatingpseudo-random noise (PN) code of a set number of chips and may belocated on ground based control stations, user equipment and/or spacevehicles. Satellite positioning systems may include such systems as theGlobal Positioning System (GPS), Galileo, Glonass, Compass, Quasi-ZenithSatellite System (QZSS) over Japan, Indian Regional NavigationalSatellite System (IRNSS) over India, Beidou over China, etc., and/orvarious augmentation systems (e.g., an Satellite Based AugmentationSystem (SBAS)) that may be associated with or otherwise enabled for usewith one or more global and/or regional navigation satellite systems. Byway of example but not limitation, an SBAS may include an augmentationsystem(s) that provides integrity information, differential corrections,etc., such as, e.g., Wide Area Augmentation System (WAAS), EuropeanGeostationary Navigation Overlay Service (EGNOS), Multi-functionalSatellite Augmentation System (MSAS), GPS Aided Geo Augmented Navigationor GPS and Geo Augmented Navigation system (GAGAN), and/or the like.

As described herein, the devices 110 a-k, which are configured toimplement peer-to-peer communication (and thus may be referred to as P2Pdevices), may include mobile devices or stations (MS) that may becellular or other types of wireless communication devices, personalcommunication system (PCS) devices, personal navigation devices (PND),Personal Information Manager (PIM) devices, Personal Digital Assistant(PDA) devices, tablet devices, laptops or some other suitable mobiledevices which are capable of receiving wireless communication and/ornavigation signals, such as navigation positioning signals. The term“mobile station” (or “mobile device”) is also intended to includedevices which communicate with a personal navigation device (PND), suchas by short-range wireless, infrared, wireline connection, or otherconnection, regardless of whether satellite signal reception, assistancedata reception, and/or position-related processing occurs at the deviceor at the PND. Also, “mobile station” is intended to include alldevices, including wireless communication devices, computers, laptops,tablet, etc., which are capable of communication with a server, such asvia the Internet, WiFi, or other network, regardless of whethersatellite signal reception, assistance data reception, and/orposition-related processing occurs at the device, at a server, or atanother device associated with the network. Any operable combination ofthe above are also considered a “mobile device” or “mobile station.”

With reference now to FIG. 2, a block diagram of a mobile device 200,which may be similar to any one of the devices 110 a-k depicted in FIG.1, is shown. As illustrated in FIG. 2, the mobile device 200 may includeat least one sensor (e.g., an orientation/inertial sensor) 220, whichmay be, e.g., a magnetometer, an accelerometer (e.g., a 3Daccelerometer), a gyroscopes, etc. Although only one sensor is depicted,additional sensors may be included with the device 200. The mobilestation may further include an image capturing device, such as a camera230 (e.g., a charge-coupled device (CCD)-type camera, CMOS-type camera,etc.), which may produce still or moving images (e.g., a video sequence)that may be displayed on a user interface device, such as a display or ascreen.

The mobile device 200 may include a receiver 240, such as a satellitepositioning system (SPS) receiver that receives signals from a SPSsatellites (such as the satellite 102 of FIG. 1) via an antenna 244. Themobile device 200 may also include at least one wireless transceiver235, which may be, e.g., a cellular modem or a wireless network radioreceiver/transmitter configured to send and receive communications toand from one or more wireless access points (such as any of LAN-WAP 106and/or the WAN-WAP 104), to send and receive messages/communicationswith peer devices in a P2P system, and/or to send and receivemessages/communications with any other type of network node configuredfor wireless/cellular communication. Communication to and from thewireless transceiver may be enabled via a dedicated antenna 236, via theantenna 244, or via some other antenna. In some implementations, themobile device 200 may include separate transceivers that serve as thecellular modem and the wireless network radio receivers/transmitters,and may include multiple dedicated transceivers that may communicate indedicated communication modes/protocols. For example, in someimplementations, where a device such as the device 200 to communicate ina P2P system, one transceiver may be configured to enable communicationsin a communication mode intended to communicate advertisement and/orother types of control messages (e.g., a communication mode such asBluetooth Low Energy, or BLE, to transmit/broadcast and/or receiveadvertisement messages containing information representative of, inpart, content available on transmitting devices). Another transceiver ofthe device 200 may be configured to enable communication in acommunication mode intended to communicate large volume of data (e.g., acommunication mode such as WiFi, for example, WiFi Direct, to transmitand/or receive content available on devices within a P2P system).

The SPS receiver 240 and the at least one wireless transceiver 235 (aswell as other units/modules of the device 200, such as the at least onesensor 220, the camera 230, etc.) are connected to, and communicatewith, a mobile device controller 250. The controller 250 is configured,for example, to process communication data received via the at least onewireless transceiver 235, to manage and control its communications withvarious remote devices (such as P2P remote devices similar to thedevices 110 a-k depicted in FIG. 1), to control operation of the variouson-board units/modules of the device 200, as well as the generaloperation of the mobile device 200. For example, and as will bedescribed in greater detail below, in some embodiments, the controller250 is configured to monitor a plurality of messages from a plurality ofmobile devices, with some of those monitored messages including dataidentifying content available on the devices from which the monitoredmessages were received. The monitored communications may also includedata representative of number of times the content data available on therespective sending devices from which the monitored messages werereceived was used on the respective sending devices. The controller 250of the device 200 may also be configured to determine popularity metricsfor one or more content data records identified in the monitoredmessages based on the data included in the monitored communicationsrepresentative of the number of times the content data at the respectivesending devices was used by/on the respective sending device. Thecontroller 250 of the device 200 may be configured to also control thedownloading of content data from the various P2P devices incommunication with the device 200 based on the determined respectivepopularity metrics for the various content records with respect to whichsending devices have been transmitting advertisements/control messages.For example, the controller may cause a particular content record fromone remote device to be downloaded (e.g., by sending a request to thatone remote device) in response to a determination that the popularitymetric associated with that content record exceeds a pre-determinedpopularity threshold. In situations where the mobile device 200 can alsosend content and/or share other of its own resources with one or moredevices (e.g., devices in a P2P system such as the system 108), thecontroller 250 may be configured to cause transmission of advertisementsadvertising content available on the device 200 for peer-to-peerdistribution, and to transmit one or more of its locally stored contentdata records (e.g., video and/or audio files, various documents, etc.)in response to, for example, receipt of a request from a P2P device incommunication with the device 200 to transmit a particular content datarecord to that P2P device (this may happen, for example, when it wasdetermined that the popularity metric of the record requested to be sentto the P2P device, as computed on that P2P device, was determined toexceed some pre-determined popularity threshold). An advertisementtransmission sent by such a sending device may include at least oneidentifier of at least one content data record, from a plurality ofcontent data records, stored at least on such a sending device, and datarepresentative of number of times the at least one content data recordwas used on the that sending device. Based on the advertisementstransmitted by such a sending device, as well as one or more otheradvertisement messages transmitted by other sending devices, a receivingdevice receiving advertisement messages can determine popularity metricsfor one or more content data records from the plurality of content datarecords based on the data included in received advertisement messagesrepresentative of the number of times respective at least one contentdata record identified in the received messages were used on therespective sending devices.

The controller 250 may include, in some implementations, a processor 252and associated memory 254, a clock 253, hardware 256, software 258, andfirmware 257. The mobile station controller 250 may further include, insome embodiments, a dedicated image processing engine 255, which isillustrated separately from processor 252 for clarity, but which mayconstitute part of the processor 252. The processor 252 may, but neednot necessarily include, one or more microprocessors, embeddedprocessors, controllers, application specific integrated circuits(ASICs), digital signal processors (DSPs), and the like. As used hereinthe term “memory” refers to any type of non-transitory computer storagemedium, including long term, short term, or other memory associated withthe mobile station, and is not to be limited to any particular type ofmemory or number of memories, or type of media upon which memory isstored. Further details regarding an example embodiment of a processoror computation system, which may be similar to the processor 252, areprovided below in relation to FIG. 6.

The mobile device 200 may also include a user interface 260 that is incommunication with the controller 250, e.g., the controller 250 mayaccept data and control the user interface 260. The user interface 260includes a display 262 that may display images, including imagesproduced by the camera 230. The display 262 may further display controlmenus, positional information, information about content available in aP2P system, present content stored locally on the device 200 (e.g., atthe memory 254), etc. The user interface 260 further includes inputinterface devices, such as, for example, a keypad 264, a touch screen(not shown), a microphone and speaker (not shown), or other input devicethrough which the user can input information into the mobile station200.

Discussion of at least some of the functionality of an individualdevice, such as any of the devices 110 a-k of FIG. 1 and/or the mobiledevice 200 of FIG. 2, to identify popular content on other devices andobtain such content is provided with further reference to FIG. 3,showing a flowchart of an example procedure 300. The procedure 300includes monitoring 310 a plurality of messages (e.g., receiving theplurality of messages, decoding the information stored on them, and/orotherwise processing them) from a plurality of mobile devices (e.g., thedevices 110 a-k of the P2P system 108 of FIG. 1). At least some of themessages being monitored may be messages with information regardingcontent available at various devices in the P2P system. Each suchmessage (advertising content) includes at least one identifier of atleast one content data record (from a plurality of content data records)stored at least on a corresponding sending device sending the respectivemessage, and data representative of number of times the at least onecontent data record was used on the respective sending device.

For example, consider FIG. 4, showing at least some of the informationfields that may be included with an example message/communication 400 ofthe kind that may be transmitted or broadcast to various devices in aP2P system to advertise content. This message, also referred to as abeacon, advertisement, communication, control message, etc., includesone or more fields containing meta data in relation to content beingadvertised by a device of the P2P system. As illustrated in FIG. 4, oneexample field of the message 400 is a field for content identifier 410.In some embodiments, the content identifier 410 may include the contentoriginator's phone number to identify the various contents available fordistribution in the system by the phone number associated with thedevice from which the content record associated with the message 400 wasfirst disseminated/distributed. In situations where a particularoriginator may have distributed multiple content data records, furtheridentification data, e.g., a number or value to distinguish one datarecord distributed by a particular device from another data recorddistributed by the same particular device, may be included with themessage as an augmentation to the content identifier field. In someembodiments, the content identifier field of the message may alsoinclude an identification value to identify the device currentlyadvertising the associated content. In such embodiments, the identifierfield 410 may thus include the originating device (and optionally anadditional identifier to identify one of a plurality of contentsoriginated by that device), as well as an identifier representative ofthe current device on which that content is stored (e.g., because thatcontent record was previously distributed to that device from anotherdevice that had that content record). Other types of identifiers, andother content identification schemes and formats may also be used toidentify the various contents stored on various devices within a P2Psystem that are available for distribution to other devices within thenetwork. For example, in some implementations, unique identificationnumbers, e.g., to identify an operator rather than a device, that arenot associated with the identity of the device(s) distributing thecontent, may be assigned to respective content records. In someembodiments, data describing the content associated with the particularcommunication (e.g., a descriptive title of the content record) may alsobe included/augmented to the content identifier field 410.

As further shown in FIG. 4, the message 400 may also include a mobilityfield 420. In some embodiments, the mobility field 420 may be a 1-bitfield (or larger) to indicate whether the device sending thecommunication 400 is a stationary device (e.g., an access point, or amobile device that has not changed its location, as determined by alocation determination procedure, over some pre-determined interval oftime). The mobility field may facilitate determining which device alistening device (i.e., a device to which content is to be downloaded)may select to request that the particular advertised content to be sentto it. For example, when a particular content record is available fromtwo devices, and one of those devices is moving while the other deviceis stationary, the listening device may prefer to receive the contentrecord in question from the stationary device. Another data field thatmay be included in the message 400 is a version field 430. In someembodiments, the version number may include information to distinguishdifferent content originating from the same device. For example,different text data contents authored by a particular operator (ororiginating from the same device) may be assigned different versionnumbers to distinguish one content from another.

As further shown in FIG. 4, in some embodiments, the message 400 mayalso include a field for popularity index 440 representative of theextent of use of the at least one content record associated with themessage 400. The popularity index indicated in the field 440 may be ause counter that indicates how many times the associated at least onecontent data record (stored on the device sending the advertisingmessage 400) was used by that sending device. In some implementations, acontent record is deemed to have been used when it is viewed by a userusing the device. In some variations, a content record (corresponding tothe meta data contained in the advertising message) is deemed to havebeen viewed if/when, for example, at least 50% (or some otherpre-determined percentage) was presented on an output user interface ofthe device (e.g., a video record presented on a display of the sendingdevice, signals of an audio record sent to an audio port of the device,etc.) In some variations, a content record is deemed to have been usedwhen the record was presented on the respective sending device for aperiod of time exceeding some pre-determined period (e.g., 3 seconds, orsome other duration). Another example of “use” of an associated contentdata record may include distributing the content data record to anotherdevice (e.g., in response to a request by the other device to send itthe content data record, in accordance with the procedures describedherein). Other types of uses are also possible.

Alternatively and/or additionally, in some embodiments, the popularityindex value contained in the popularity index field 440 may include avalue representative of a popularity metric derived by the sendingdevice. Thus, the sending device may have previously computed apopularity metric for the particular at least one content record that isbeing advertised, and based on that previously computed popularitymetric the sending device may have downloaded the content record forstorage in its memory. Computation of the popularity metric for thatcontent record may have been performed based on procedures similar tothose described herein. The previously computed popularity index, or anadjusted value thereof, may be included in the popularity index field440 of a transmitted/broadcast advertisement from that sending device inaddition to, or instead of, a use counter. For example, in someembodiments, the popularity index field 440 may include a previouspopularity metric previously computed by the sending device prior to thedownloading of the associated content data record to the sending device,and also include a value representative of subsequent uses of thedownloaded content data record by that sending device. The valueincluded in the popularity index of the advertisement/beacons receivedby a listening device may then be used to locally derive/compute (i.e.,at the listening device) the popularity metric based on which adetermination is made whether to download from the sending device thattransmitted the advertisement message the at least one content recordassociated with the received message from the sending device.

The message 400 of FIG. 4 may include, in some embodiments, additionalfields and information regarding content available at P2P device of aP2P system. For example, when a particular device or operator isassociated with multiple content data records (e.g., a particular deviceor operator may have originated multiple content data records), a mediacontent field (also referred to as a content identifier field) may beused to hold information identifying the particular content data recordsfrom the multiple content data records associated with the particulardevice(s) or operator(s) identified by the content identifier field 410of the message 400. Thus, if a particular operator, identified by aunique identification number that can be included in the field 410 ofthe message 400, originated three different content data records, thethree content records may be identified as, for example, 1, 2, and 3,which, in combination with the identification number contained in thefield 410, can uniquely identify the content being advertised by thesending device.

Additional fields may also include one or more of the following fields:

-   -   Content type—The information contained in this field may include        short descriptions of the type of content or resources being        advertised by the sending device, e.g., system content, ads,        media content, listings of personal information (for example,        listing of friends), etc.    -   Origin time stamp—Information in this field may include a time        stamp corresponding to when the content being advertised was        originally created.    -   Received time stamp—Information contained in this field may        include a time stamp corresponding to when the content being        advertised by the message was received by the sending device (in        circumstances when such content was downloaded from another        device). In situations where the content advertised was created        at the sending device, the receive time stamp may be the same as        the origin time stamp.    -   Mime type—Information contained in this field indicates the type        of content being advertised, e.g., audio, video, etc.        Information in this field may also indicate the file format for        the corresponding content.    -   Channel—Information contained in this field indicates the        channel/content category the content pertains to, e.g., news,        education, government, religion, astrology, sports, cricket,        wildcard, etc.        Further types of information and fields that may be included in        the message 400 may also be used. As a further example, in some        embodiments, the advertisement messages may also include a        “liked” (or some similar attribute) field or flag indicative of        whether the advertising operator liked the content or not. This        flag, when monitored in by listening devices, can be used to        determine the proportion (e.g., in terms of a percentage) of        users/operators that liked or disliked the associated content.        Thus, in some embodiments, advertising messages, which may be        configured in a manner similar to the configuration of the        message 400, may include at least one flag associated with at        least one content data record to indicate at least one attribute        associated with the at least one content data. The at least one        flag may include information to indicate of whether a user        operating the respective sending device liked the at least one        content data record. Use of a “like” flag may be used to sort        content (stored on the device, or content advertised) according        to content that is “liked” (e.g., its “liked” percentage exceeds        some pre-determined value, e.g., 50%) and content that is        “unliked” (e.g., the “liked” percentage is less than some        pre-determined value).

As noted, the devices receiving and monitoring messages/communicationssent by the various devices of a P2P network (such as the system 108)are configured, without using a central server, to identify contentavailable in the system/network, keep track of the available contentavailable throughout the system/network, and keep track of the contents'respective popularity. Thus, turning back to FIG. 3, the exampleprocedure 300 also includes determining 320 (e.g., by the listeningdevice monitoring the messages/communications advertising the contentavailable in a system such as the P2P system 108) popularity metrics forone or more content data records (associated with the monitoredcommunications) based, at least in part, on the data included in each ofthe at least some of the plurality of communications/messages (suchcommunications/messages being configured, for example, similarly to themessage 400 of FIG. 4) representative of the number of times therespective content data records were used on the respective sendingdevices that store and advertise those content records.

Accordingly, in some of the implementations described herein, sendingdevices of a P2P system/network communicate advertisementmessages/communications that each includes information to identify atleast one content data record stored on the respective sending devices(e.g., identifier information, such as information included in a contentidentifier field, an originator's ID field, etc.), and data (included ina field such as the popularity index field 440 of FIG. 4) representativeof number of times the at least one content data record was used (e.g.,“viewed”) on the respective sending devices.

The listening device listening/monitoring advertisementsmessages/communications communicated within the P2P system can thustrack from these messages the content available in the P2P system andlocally compute (e.g., at the device itself) a metric indicative of thepopularity the content has, or is, gaining within the system. In someembodiments, once a certain threshold of popularity has been attained,the listening device may determine whether to download content from oneof the devices advertising that particular content.

Thus, for example, for each public content j (which may be identified byone or more of the content's ID number, the content's originator phonenumber or operator number, etc.), and for each sending device (oroperator/user) i advertising that content, the listening device keepstrack of Vij, where Vij is the use/view count for the j^(th) content onthe i^(th) device (as advertised on the beacons sent by the i^(th)device or operator). In other words, a particular content j stored on aparticular sending device i, will be associated with a value Vij(maintained on the listening device that monitors the variousadvertisement messages/communications) indicating, for example, how manytimes the associated content was used (e.g., viewed) on the i^(th)sending device (or i^(th) operator/user). The value Vij can be updatedto account for subsequent uses of any of the contents. Thereceiving/listening device may also be configured to keep track of thetime of last update for each Vij. If the time of last update for aparticular content is more than a predefined time (e.g., 1 week), Vijmay be reduced by some pre-determined value (e.g., 1) to reflect waningpopularity, and to update the time of last update to the current time. Areduced value of the corresponding Vij will result in a reducedpopularity metric, as will become apparent below. If there are no newuses for that particular content by the associated device or operator ifor another period equal to the pre-defined time period, the value ofthe respective Vij will again be decremented to further capture thedecreasing use (and thus potentially decreasing popularity) of theparticular content j.

Thus, a receiving/listening device may update any of the records Vij itmaintains in at least one of three ways: a) when the listening devicecomes across another advertisement message/communication from the i^(th)device/operator for the content j; b) when the listening devicedownloads the content j from another device x that has come across amore recent updated Vij, and the listening device and the device xupdate each other's metrics; and/or c) when the time since last update(of Vij) has exceeded a predefined time period and the listening deviceconsequently updates (e.g., decreases Vij) on its own.

In some embodiments, a listening device may compute a popularity metricassociated with a particular content j according to:

${POP}_{j} = \frac{\sum V_{ij}}{N\left( V_{ij} \right)}$where POP_(j) is the popularity metric for the j^(th) content datarecord, Sigma Vij (i.e., ΣVij) is the sum of the values of the used/viewcounters maintained by the listening device for each content j, andN(Vij) is the number of such entries for a content j maintained at thelistening device. Thus, in such embodiments, determining popularitymetrics for one or more content data records from the plurality ofcontent data records includes determining for each of the one or morecontent data records the sum of the times the each of the one or morecontent data records was used (e.g., viewed) on each sending device onwhich the respective each of the one or more content data records isstored, and determining a ratio of the sum of the times the each of theone or more content data records was used on the each sending device onwhich the respective each of the one or more content data records isstored, and number of sending devices (or number of operators of suchsending devices) on which the respective each content data record isstored.

For example, assume a particular content j (e.g., a video clip) isstored at three separate sending devices, that are identified in the P2Psystem 108 depicted in FIG. 1 as devices 110 b, d, and e (i.e., the i'scorresponding to these devices are b, d, and e, or some other identifiervalues to uniquely identify these sending devices). Assume, for thisexample, that device 110 b has used the content j 10 times, that device110 d has used the content j 7 times, and that device 110 e has used thecontent j 16 times. In this example, the popularity index determined ata listening device, for example, the device 110 a of FIG. 1, thatreceived advertisement messages from all the three devices 110 b, d, ande advertising the content j and indicating the number of uses of thatcontent on them, may be computed as:POP_(j)=(10+7+16)/3=11

This value may thus be used as the popularity metric for the content jas computed on the listening device 110 a, and may be used to basevarious content control decision, e.g., downloading the content from oneof the advertising devices, replacing a content data record alreadystored on the listening device with one of the non-resident (i.e.,non-stored) content data records that are being monitored/tracked by thelistening device, etc. Other processes and ways to compute a popularitymetric for advertised content may also be used.

In some embodiments, an operator of a sending device may exercisediscretion as to which content record the operator wishes to download.For example, a list of the various contents identified by the listeningdevice from the messages monitored by it, and the content records'corresponding popularity metrics as derived by the listening device, maybe generated and presented on an output interface (e.g., a displayscreen, an audio interface, etc.), and the operator of the listeningdevice may then select any of the content records identified in thegenerated list (the operator's selection may be facilitated by thecomputed popularity metrics for the various contents identified throughthe device). Additionally and/or alternatively, in some embodiments, thelistening device may automatically select content records based, forexample, on the popularity metrics derived for the various contentrecords identified by the listening device from the messages itmonitored. For example, a content whose popularity index exceeds somepre-determined threshold (or is otherwise determined to have a certainlevel of popularity to trigger the downloading of the content) may bedownloaded from one of the sending devices that advertised this content.

When a particular content record is selected for downloading(automatically or by the operator of the particular listening device),determination of which sending device to select as a source fordownloading the desired content may be based on one or more criteria,including, for example, distance between the listening device and thevarious devices on which the particular content is stored (e.g., selectthe sending device, with the desired content, closest to the listeningdevice), quality of the content record (e.g., select a device with ahigh definition version of the content), the most up-to-date record,whether a sending device is stationary or moving, etc. Which criteriaand/or device-selection rules may be applied to enable the downloadingof a content record may depend on the extent of the information providedin the messages monitored by the listening device. For example, if thecriterion to be used to select the sending device is based on distance,content advertising messages sent by the sending devices may need toinclude location information of the various sending device. Thus,messages, such as the message 400 may need to include a field such as adevice-location field (not shown in the diagram of FIG. 4) that containslocation information of the device (the location of the sending devicessending the advertisement messages may be determined using one or morelocation-determination procedures, such as multilateration-basedprocedures, that enable determination of a device's location based onsignals received from access points and/or satellites). In someembodiments, selection of the sending device from which to download aselected content data record may be based on a random selection of thedevices identified as storing the content data record, based onselection of the device from which the advertisement message was firstreceived by the listening device, based on selection of the firstsending device with which the listening device can establish acommunication link for the purpose of downloading the selected contentdata record, or based on any other selection scheme, rule, or criterion.In some embodiments, a listening device may only be able to request aparticular record from sending devices that are defined as being thelistening device's authorized contacts (e.g., devices designated asbeing “friends” of the listening device). In some embodiments,messages/advertisements advertising content may be received by alistening device only from sending devices that are determined to beauthorized contacts of the listening device. On the other hand, inembodiments in which a listening device may be able to receivemessages/advertisements from devices other than just authorizedcontacts, but can request and download content only from devices thatare authorized contacts of the listening devices, the listening devicemay first need to add (e.g., subscribe to) a sending device that hascontent the listening device is requesting to download that is notavailable on the listening device's authorized contacts devices. Asnoted, in some implementations, a listening device may be able todownload content from any device in the P2P network in which thelistening device is deployed.

Once a sending device on which a selected content data record is storedhas been selected, operations to obtain that content data record fromthe selected sending device are performed. As noted, in someembodiments, the transmission of large volume of data may be performedusing a communication mode with a higher capacity than the communicationmode used to transmit or broadcast messages advertising the contentavailable in the P2P system/network (or to transmit other types ofcontrol messages). In some embodiments, WiFi communication links may beused to enable communication of content data between a selected sendingdevice from which a desired content data recorded is to be downloadedand the target listening device. For example, in such embodiments, theadvertisement messages/communications transmitted by sending devices(advertising their available content) may include WiFi node data details(e.g., arranged in one or more fields) to enable the listening device toestablish a WiFi-based communication link with a selected sending devicefrom which the desired content data is to be downloaded. WiFi nodedetails received with advertisement messages may be stored, togetherwith other pertinent data relating to content available in the devicesconstituting the P2P system, in a local database maintained on thereceiving listening device. Upon selection of a content data record tobe downloaded (e.g., in response to the popularity metric associatedwith that record exceeding a pre-defined threshold, or in response toselection of that record by the operator of the listening device), anddetermination of the sending device from which that selected contentdata record is to be downloaded, the listening device is configured toobtain the WiFi node details for the sending device that is to send thatdata record (e.g., retrieve the details from the database where thedetails are stored). The listening device may then send a request to theselected sending device, configuring the request based on the WiFi nodedetails for that sending device (e.g., identifying in the request theWiFi node particulars of the selected sending device), and including inthe request WiFi node details of the listening device. In response, ifthe selected sending device is available to establish a link with thelistening device that sent the request (e.g., communication trafficinvolving the selected sending device does not exceed somepre-determined traffic threshold), the selected sending device may startsending the selected content data record via a WiFi link between thesending and listening device. Alternatively, in some implementations,the WiFi link establishment procedure may include several additionalexchanges of control messages, e.g., transmission of an acknowledgementmessage from the selected sending device to the requesting listeningdevice, before transmission of the content data record may commence.

In some embodiments, the devices of a P2P system (such as the devices ofthe P2P system 108) may be configured to maintain only a limited numberof content records (e.g., due to device resource constraints, such asstorage constraints, processing resources constraints, etc.). In suchembodiments, one or more of the devices of the P2P system may beconfigured to automatically manage/control the content locally stored onthem to determine whether to replace one stored content data record withanother content data record that is to be downloaded from a remotesending device. For example, in some implementations, the one or moredevices of the P2P system may be configured to replace its least popularresident public content (i.e., content stored locally on the listeningdevice) with a non-resident content record whose popularity (determinedand tracked according to, for example, the procedures described herein)is higher than that of the device's least popular content.

Thus, with reference to FIG. 5, a flowchart of an example procedure 500to control the content stored on a device (such as any of the devices110 a-k of FIG. 1) is shown. As noted, a listening device identifies andtracks 510 non-resident content data records based on messages sent byvarious sending devices advertising their content that is available fordistribution, and determines for the identified content data recordsrespective popularity metrics (also at 510), e.g., based on their use atthe sending devices. In response to a determination that a non-residentcontent data records is to be downloaded from a sending device (e.g.,when the popularity metric of that content data record, as determined520 by the listening device, exceeds a predefined popularity threshold),a determination is made 530 whether the limit of the number of locallystored records (e.g., public records) has been reached (e.g., 100records, 500 records, or any other pre-determined limit). If the limithas not been reached, the selected non-resident content data record isdownloaded 570 from a sending device on which that particular contentdata record is stored (if more than one sending device stores thatrecord, the listening device is configured to select one of thosesending device according to, for example, a device selection proceduredescribed above). If the limit has been reached, the listening device isconfigured to identify 540 from its stored content records (e.g., storedpublic content data records) the least popular content record, e.g., byaccessing the popularity metrics associated with the stored content datarecords and identifying the smallest popularity metric value. In someembodiments, popularity of stored (resident) content may be based onself use counts (e.g., number of times a particular stored content wasused on the device), and/or may also be based on use count informationreceived from other devices.

Once the least popular content data record stored on the listeningdevice has been identified, a determination is made 550 whether theidentified record is less popular than the selected non-resident record,e.g., by determining whether the popularity metric of the least popularpublic content data record is less than or exceeds the popularity metricof the non-stored content data record being tracked. If the leastpopular stored content is less popular than the non-resident contentdata record in question, the current least popular resident content datarecord is replaced with the non-resident content data records that wasbeing tracked, e.g., by deleting 560 the current least popular residentcontent data record, and downloading 570 from a selected sending devicethe new content data record. If the least popular content record is morepopular than the non-resident content data record being tracked, thenon-resident content data record will generally not be downloaded(unless the operator of the device overrides the decision/determinationnot to download, and specifically authorizes downloading of thenon-resident content), and non-resident content continues to beidentified and/or tracked at 510 of the procedure 500. In someembodiments, the operations 550 may be skipped if the procedure 500 isto be implemented so that new non-resident content selected for possibledownloading always has to be downloaded, whether or not it is morepopular than the record it is to replace.

In some implementations, metadata of content data records that have beenremoved from storage (e.g., because they were replaced by newer, morepopular content) may be placed in a storage space (such as a scratchpad) where the metadata associated with non-resident content datarecords is stored to enable identification and tracking of contentavailable on the P2P system. Thus, in such embodiments, removed contentmay subsequently be downloaded again for storage in the device fromwhich it was removed if it becomes sufficiently popular again. However,to avoid frequent removal and re-downloading of a particular contentdata record, a certain pre-determined time period (e.g., 1 day, 1 week,etc.) may need to elapse before that removed content is eligible to bedownloaded again.

In some embodiments, some advertised content may be downloadedautomatically by a listening device without regard to the content'spopularity metric. For example, a listening device may be configured toautomatically download content advertised by devices and/or operatorsthat have been previously identified as friends or otherwise have beenflagged as devices/operators whose advertised content is always to bedownloaded.

In some implementations, a temporality element may be introduced incomputation of popularity metrics for content data records. For example,a device may be configured to adjust self-use (e.g., self-view) countsassociated with content data record stored on that device such thatuse/view counts may decay with time if content is old and not beingviewed (which in turn results in a decrease in the computed popularitymetric of the content data records on that device and/or on devices thatreceive messages advertising the content data records on that device).Such a temporal-based adjustment of use counts causes popularity metricsof older content data records to be decreased, which in turn favorsdiscoverability of newer content by devices in the P2P system, and alsomakes it more likely that older content data records stored on thedevices will be replaced by newer content data records.

Thus, in some embodiments, devices may be configured to adjust theiruse/view counts to reflect use of the content, as well as to reflectnon-use of the content. For example, in response to a determination thata particular content data record stored on a device was used (e.g., atleast 50% of the particular data content record was presented on anoutput user interface on the device, the particular data content recordwas presented on the output user interface of the device for a period oftime exceeding a pre-determined period such as 10 second, etc.), the usecount for that data record is increased (e.g., by a value of 1).Conversely, in response to a determination that that particular contentdata record was not used (e.g., not viewed) for some pre-determinedperiod of time (e.g., 1 day, 1 week, etc.), the associated use count forthat data record is adjusted to reduce it (e.g., by a value of 1). Theadjustment of the use count associated with that particular record willthus impact the popularity metrics computed on listening devicesreceiving advertisements messages sent by the device corresponding tothe particular record, and will also impact popularity metriccomputation performed locally on the device where the particular contentdata record is stored to enable, for example, management of the contentdata records stored on the device (e.g., to determine the least popularresident content data record in order to replace it with a more popularnon-resident content data record from a remote device). It is to benoted that, in some embodiments, when a sending device transmits contentdata record to another device, both source and destination devices(i.e., the sending and listening devices) may exchange the local viewcount data for the content being transmitted/downloaded in order toupdate their use statistics and/or popularity metrics with respect tothe particular content data record transmitted/downloaded.

Performing the various operations described herein may be facilitated bya processor-based computing system. Particularly, each of the varioussystems/devices described herein may be implemented, at least in part,using one or more processing-based devices (which may form part ofdevices described herein, including any of the devices 110 a-k of FIG.1). Thus, with reference to FIG. 6, a schematic diagram of a genericcomputing system 600 is shown. The computing system 600 includes aprocessor-based device 610 such as a personal computer, a specializedcomputing device, and so forth, that typically includes a centralprocessor unit 612. In addition to the CPU 612, the system includes mainmemory, cache memory and bus interface circuits (not shown). Theprocessor-based device 610 may include a mass storage element 614, suchas a hard drive or flash drive associated with the computer system. Thecomputing system 600 may further include a keyboard, or keypad, or someother user input interface 616, and a monitor 620, e.g., a CRT (cathoderay tube) or LCD (liquid crystal display) monitor, that may be placedwhere a user can access them.

The processor-based device 610 is configured to facilitate, for example,the implementation of operations to monitor messages/communicationsadvertising content stored on devices in a P2P system that are madeavailable for distribution), to compute popularity metrics locally atlistening devices based on use values associated with the content beingadvertised, etc. The storage device 614 may thus include a computerprogram product that when executed on the processor-based device 610causes the processor-based device to perform operations to facilitatethe implementation of the above-described procedures and operations. Theprocessor-based device may further include peripheral devices to enableinput/output functionality. Such peripheral devices may include, forexample, a CD-ROM drive and/or flash drive (e.g., a removable flashdrive), or a network connection (e.g., implemented using a USB portand/or a wireless transceiver), for downloading related content to theconnected system. Such peripheral devices may also be used fordownloading software containing computer instructions to enable generaloperation of the respective system/device. Alternatively and/oradditionally, in some embodiments, special purpose logic circuitry,e.g., an FPGA (field programmable gate array), an ASIC(application-specific integrated circuit), a DSP processor, etc., may beused in the implementation of the system 600. Other modules that may beincluded with the processor-based device 610 are speakers, a sound card,a pointing device, e.g., a mouse or a trackball, by which the user canprovide input to the computing system 600. The processor-based device610 may include an operating system, e.g., Windows XP® MicrosoftCorporation operating system, Android operating system, etc.Alternatively, other operating systems could be used.

Computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and may be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the term “machine-readable medium” refers toany non-transitory computer program product, apparatus and/or device(e.g., magnetic discs, optical disks, memory, Programmable Logic Devices(PLDs)) used to provide machine instructions and/or data to aprogrammable processor, including a non-transitory machine-readablemedium that receives machine instructions as a machine-readable signal.

Although particular embodiments have been disclosed herein in detail,this has been done by way of example for purposes of illustration only,and is not intended to be limiting with respect to the scope of theappended claims, which follow. In particular, it is contemplated thatvarious substitutions, alterations, and modifications may be madewithout departing from the spirit and scope of the invention as definedby the claims. It is also to be understood that the order or hierarchyof operations in any procedure, process or method disclosed herein is anillustration of an example procedure, process, or method, and thespecific order or hierarchy of operations may be rearranged. Otheraspects, advantages, and modifications are considered to be within thescope of the following claims. The claims presented are representativeof the embodiments and features disclosed herein. Other unclaimedembodiments and features are also contemplated. Accordingly, otherembodiments are within the scope of the following claims.

What is claimed is:
 1. A method comprising: monitoring a plurality ofmessages from a plurality of mobile devices, each of at least some ofthe plurality of messages including at least one identifier of at leastone content data record, from a plurality of content data records,stored at least on a sending device sending the respective message, anddata representative of number of times the at least one content datarecord was used on the respective sending device; determining popularitymetrics for one or more content data records from the plurality ofcontent data records based on the data included in each of the at leastsome of the plurality of messages representative of the number of timesthe respective at least one content data record was used on therespective sending device; and adjusting at each sending device thenumber of times each of the data content records stored on therespective each sending device was used, the adjusting comprising:incrementing the number of times a particular data content record,stored on a particular sending device, was used when at least 50% of theparticular data content record was presented on the particular sendingdevice.
 2. The method of claim 1, wherein the at least one identifierincluded in the each of the at least some of the plurality of messagescomprises data identifying the originator of the associated at least onecontent data record.
 3. The method of claim 1, wherein determining thepopularity metrics for the one or more content data records from theplurality of content data records comprises: determining the sum of thetimes each of the one or more content data records was used on eachsending device on which the respective each of the one or more contentdata records is stored; and determining a ratio of the sum of the timesthe each of the one or more of content data records was used on the eachsending device on which the respective each of the one or more contentdata records is stored, and number of sending devices on which therespective each of the one or more content data records is stored. 4.The method of claim 1, further comprising: downloading one of theplurality of content data records associated with a popularity metricexceeding a pre-determined popularity threshold.
 5. The method of claim4, wherein downloading the one of the plurality of content data recordscomprises: in response to a determination that number of locally storedcontent data records exceeds a pre-determined capacity threshold:identifying a locally stored content data record associated with acorresponding popularity metric representative of the identified locallystored content data record being the least popular from the locallystored content data records; and replacing the identified locally storedcontent data with the one of the plurality of the content data recordswhen the identified locally stored content data record is determined tobe less popular than the one of the plurality of content data records.6. The method of claim 1, wherein the adjusting at the each sendingdevice the number of times the each of the data content records storedon the respective each sending device was used comprises: reducing thenumber of times a particular data content record stored on a particularsending device was used when the particular data content record was lastpresented on the particular device more than a pre-determined period. 7.The method of claim 1, wherein each of the at least some of theplurality of messages further includes at least one flag associated withthe respective at least one content data record to indicate at least oneattribute associated with the respective at least one content data. 8.The method of claim 7, wherein the at least one flag to indicate the atleast one attribute associated with the respective at least one contentdata comprises: information to indicate of whether a user operating therespective sending device liked the respective at least one content datarecord.
 9. A wireless communication device comprising: one or moreprocessors; a transceiver to receive wireless messages; and storagemedia comprising computer instructions that, when executed on the one ormore processors, cause operations comprising: monitoring a plurality ofmessages from a plurality of mobile devices, each of at least some ofthe plurality of messages including at least one identifier of at leastone content data record, from a plurality of content data records,stored at least on a sending device sending the respective message, anddata representative of number of times the at least one content datarecord was used on the respective sending device; determining popularitymetrics for one or more content data records from the plurality ofcontent data records based on the data included in each of the at leastsome of the plurality of messages representative of the number of timesthe respective at least one content data record was used on therespective sending device; and adjusting at each sending device thenumber of times each of the data content records stored on therespective each sending device was used, wherein the adjustingcomprises: incrementing the number of times a particular data contentrecord, stored on a particular sending device, was used when at least50% of the particular data content record was presented on theparticular sending device.
 10. The device of claim 9, wherein the atleast one identifier included in the each of the at least some of theplurality of messages comprises data identifying the originator of theassociated at least one content data record.
 11. The device of claim 9,wherein determining the popularity metrics for the one or more contentdata records from the plurality of content data records comprises:determining the sum of the times each of the one or more content datarecords was used on each sending device on which the respective each ofthe one or more content data records is stored; and determining a ratioof the sum of the times the each of the one or more of content datarecords was used on the each sending device on which the respective eachof the one or more content data records is stored, and number of sendingdevices on which the respective each of the one or more content datarecords is stored.
 12. The device of claim 9, wherein the instructionscause further operations comprising: downloading one of the plurality ofcontent data records associated with a popularity metric exceeding apre-determined popularity threshold.
 13. The device of claim 12, whereindownloading the one of the plurality of content data records comprises:in response to a determination that number of locally stored contentdata records exceeds a pre-determined capacity threshold: identifying alocally stored content data record associated with a correspondingpopularity metric representative of the identified locally storedcontent data record being the least popular from the locally storedcontent data records; and replacing the identified locally storedcontent data with the one of the plurality of the content data recordswhen the identified locally stored content data record is determined tobe less popular than the one of the plurality of content data records.14. The device of claim 9, wherein the adjusting at the each sendingdevice the number of times the each of the data content records storedon the respective each sending device was used further comprises:reducing the number of times a particular data content record stored ona particular sending device was used when the particular data contentrecord was last presented on the particular device more than apre-determined period.
 15. The device of claim 9, wherein each of the atleast some of the plurality of messages further includes at least oneflag associated with the respective at least one content data record toindicate at least one attribute associated with the respective at leastone content data.
 16. The device of claim 15, wherein the at least oneflag to indicate the at least one attribute associated with therespective at least one content data comprises: information to indicateof whether a user operating the respective sending device liked therespective at least one content data record.
 17. An apparatuscomprising: means for monitoring a plurality of messages from aplurality of mobile devices, each of at least some of the plurality ofmessages including at least one identifier of at least one content datarecord, from a plurality of content data records, stored at least on asending device sending the respective message, and data representativeof number of times the at least one content data record was used on therespective sending device; means for determining popularity metrics forone or more content data records from the plurality of content datarecords based on the data included in each of the at least some of theplurality of messages representative of the number of times therespective at least one content data record was used on the respectivesending device; and means for adjusting at each sending device thenumber of times each of the data content records stored on therespective each sending device was used, wherein the means for adjustingcomprises: means for incrementing the number of times a particular datacontent record, stored on a particular sending device, was used when atleast 50% of the particular data content record was presented on theparticular sending device.
 18. The apparatus of claim 17, wherein the atleast one identifier included in the each of the at least some of theplurality of messages comprises data identifying the originator of theassociated at least one content data record.
 19. The apparatus of claim17, wherein the means for determining the popularity metrics for the oneor more content data records from the plurality of content data recordscomprise: means for determining the sum of the times each of the one ormore content data records was used on each sending device on which therespective each of the one or more content data records is stored; andmeans for determining a ratio of the sum of the times the each of theone or more of content data records was used on the each sending deviceon which the respective each of the one or more content data records isstored, and number of sending devices on which the respective each ofthe one or more content data records is stored.
 20. The apparatus ofclaim 17, further comprising: means for downloading one of the pluralityof content data records associated with a popularity metric exceeding apre-determined popularity threshold.
 21. The apparatus of claim 20,wherein the means for downloading the one of the plurality of contentdata records comprise: means for performing operations, in response to adetermination that number of locally stored content data records exceedsa pre-determined capacity threshold, comprising: identifying a locallystored content data record associated with a corresponding popularitymetric representative of the identified locally stored content datarecord being the least popular from the locally stored content datarecords; and replacing the identified locally stored content data withthe one of the plurality of the content data records when the identifiedlocally stored content data record is determined to be less popular thanthe one of the plurality of content data records.
 22. The apparatus ofclaim 17, wherein the means for adjusting at the each sending device thenumber of times the each of the data content records stored on therespective each sending device was used further comprises: means forreducing the number of times a particular data content record stored ona particular sending device was used when the particular data contentrecord was last presented on the particular device more than apre-determined period.
 23. The apparatus of claim 17, wherein each ofthe at least some of the plurality of messages further includes at leastone flag associated with the respective at least one content data recordto indicate at least one attribute associated with the respective atleast one content data.
 24. The apparatus of claim 23, wherein the atleast one flag to indicate the at least one attribute associated withthe respective at least one content data comprises: information toindicate of whether a user operating the respective sending device likedthe respective at least one content data record.
 25. A non-transitoryprocessor readable media programmed with a set of instructionsexecutable on a processor that, when executed, cause operationscomprising: monitoring a plurality of messages from a plurality ofmobile devices, each of at least some of the plurality of messagesincluding at least one identifier of at least one content data record,from a plurality of content data records, stored at least on a sendingdevice sending the respective message, and data representative of numberof times the at least one content data record was used on the respectivesending device; determining popularity metrics for one or more contentdata records from the plurality of content data records based on thedata included in each of the at least some of the plurality of messagesrepresentative of the number of times the respective at least onecontent data record was used on the respective sending device; andadjusting at each sending device the number of times each of the datacontent records stored on the respective each sending device was used,wherein the adjusting comprises: incrementing the number of times aparticular data content record, stored on a particular sending device,was used when at least 50% of the particular data content record waspresented on the particular sending device.
 26. The processor readablemedia of claim 25, wherein the at least one identifier included in theeach of the at least some of the plurality of messages comprises dataidentifying the originator of the associated at least one content datarecord.
 27. The processor readable media of claim 25, whereindetermining the popularity metrics for the one or more content datarecords from the plurality of content data records comprises:determining the sum of the times each of the one or more content datarecords was used on each sending device on which the respective each ofthe one or more content data records is stored; and determining a ratioof the sum of the times the each of the one or more of content datarecords was used on the each sending device on which the respective eachof the one or more content data records is stored, and number of sendingdevices on which the respective each of the one or more content datarecords is stored.
 28. The processor readable media of claim 25, whereinthe instructions cause further operations comprising: downloading one ofthe plurality of content data records associated with a popularitymetric exceeding a pre-determined popularity threshold.
 29. Theprocessor readable media of claim 28, wherein downloading the one of theplurality of content data records comprises: in response to adetermination that number of locally stored content data records exceedsa pre-determined capacity threshold: identifying a locally storedcontent data record associated with a corresponding popularity metricrepresentative of the identified locally stored content data recordbeing the least popular from the locally stored content data records;and replacing the identified locally stored content data with the one ofthe plurality of the content data records when the identified locallystored content data record is determined to be less popular than the oneof the plurality of content data records.
 30. The processor readablemedia of claim 25, wherein the adjusting at the each sending device thenumber of times the each of the data content records stored on therespective each sending device was used further comprises: reducing thenumber of times a particular data content record stored on a particularsending device was used when the particular data content record was lastpresented on the particular device more than a pre-determined period.31. The processor readable media of claim 25, wherein each of the atleast some of the plurality of messages further includes at least oneflag associated with the respective at least one content data record toindicate at least one attribute associated with the respective at leastone content data.
 32. The processor readable media of claim 31, whereinthe at least one flag to indicate the at least one attribute associatedwith the respective at least one content data comprises: information toindicate of whether a user operating the respective sending device likedthe respective at least one content data record.